Apparatus and methods are provided for dynamic and adaptive scanning of communication channels.
Wireless computing and communication devices regularly scan communication channels to locate devices and services (e.g., Bluetooth® devices), identify available communication connections (e.g., Wi-Fi®) and/or for other reasons. Each of multiple communication functions, services or applications operating on a device may request scans, on the same or different channels, of the same or different types (e.g., active, passive) and at various times, thereby placing fluctuating demands on the device's communication resources.
The more scans a device must perform, the more power it consumes. Adding to the inefficiencies, a scan for one purpose (e.g., one service or application) will sometimes target a channel that was recently scanned for some other purpose, thereby causing wasteful redundancy.
In addition, services and applications that initiate channel scans generally are not designed to do so in an adaptive manner that accommodates or adjusts to variations in communication activity. For example, a typical service or application may request scans with the same frequency regardless of whether recent scans have revealed nothing of interest or have revealed many available connections or devices. For example, in a highly dynamic environment a device may encounter an ever-changing communication topography, with different devices and network connections appearing and disappearing in fairly rapid succession. If the device continues scanning with a relatively long periodicity, it may miss some significant opportunities.
In summary, each of multiple communication applications and services installed on a portable communication device or computing device attempts to satisfy its own requirements or desires for scanning, independent of other applications and services, and does not attempt to adjust its scan requests to promote efficient use of the device's communication resources. Therefore, the device's operating system and the communication resources are subject to inefficient usage as they attempt to meet each distinct request.